package club.service;

import club.pojo.Admins;
import com.github.pagehelper.PageInfo;


import club.pojo.Admins;
import com.github.pagehelper.PageInfo;


public interface AdminService {

    /**
     * 分页查询管理员信息，可根据管理员名称模糊查询
     *
     * @param adminName 管理员名称，用于模糊查询
     * @param pageNum   当前页码
     * @param pageSize  每页显示条数
     * @return 分页后的管理员信息列表
     */
    PageInfo<Admins> adminPage(String adminName, Integer pageNum, Integer pageSize);

    /**
     * 根据管理员ID查询管理员信息
     *
     * @param id 管理员ID
     * @return 对应ID的管理员信息，若不存在则返回null
     */
    Admins findById(Integer id);

    /**
     * 管理员登录验证
     *
     * @param adminName 管理员名称
     * @param adminPwd  管理员密码
     * @return 如果管理员名称和密码匹配，返回对应的管理员对象；否则返回null
     */
    Admins login(String adminName, String adminPwd);

    /**
     * 查询所有管理员信息（分页），可以根据管理员名称模糊查询
     *
     * @param adminsName 管理员名称，用于模糊查询
     * @param pageNum    当前页码
     * @param pageSize   每页显示条数
     * @return 分页后的管理员信息列表
     */
    PageInfo<Admins> allAdmin(String adminsName, int pageNum, int pageSize);

    /**
     * 添加新的管理员信息
     *
     * @param admins 待添加的管理员对象
     * @return 插入操作影响的行数，通常为1
     */
    int add(Admins admins);

    /**
     * 更新管理员信息
     *
     * @param admins 待更新的管理员对象
     * @return 更新操作影响的行数，通常为1
     */
    int update(Admins admins);

    /**
     * 删除指定ID的管理员信息
     *
     * @param id 待删除管理员的ID
     * @return 删除操作影响的行数，通常为1
     */
    int del(Integer id);
}
